package org.pine.api.beans.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.pine.api.utils.TimeUtil;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户查询响应体
 *
 * @author pine
 * @version v1.0
 * @since 2025-04-12 16:20
 */
@Data
public class UserQueryResponse implements Serializable {


    @Serial
    private static final long serialVersionUID = 3118491417389703968L;

    /**
     * 用户名
     */
    @Schema(title = "用户名", description = "用户名")
    private String username;

    /**
     * 登录账号
     */
    @Schema(title = "登录账号", description = "登录账号")
    private String loginAccount;

    /**
     * 电话
     */
    @Schema(title = "电话", description = "电话")
    private String phone;

    /**
     * 邮箱
     */
    @Schema(title = "邮箱", description = "邮箱")
    private String email;

    /**
     * 启用时间
     */
    @JsonFormat(pattern = TimeUtil.DEFAULT_DATE_TIME_PATTERN, timezone = TimeUtil.GMT_8)
    @Schema(title = "enableTime", description = "启用时间-时间格式（yyyy-MM-dd HH:mm:ss）")
    private LocalDateTime enableTime;

    /**
     * 停用时间
     */
    @JsonFormat(pattern = TimeUtil.DEFAULT_DATE_TIME_PATTERN, timezone = TimeUtil.GMT_8)
    @Schema(title = "disableTime", description = "停用时间-时间格式（yyyy-MM-dd HH:mm:ss）")
    private LocalDateTime disableTime;

    /**
     * 状态:0=无效,1=有效
     */
    @Schema(title = "状态", description = "状态:0=无效,1=有效")
    private Integer status;

    /**
     * 备注
     */
    @Schema(title = "备注", description = "备注")
    private String remark;

    @Schema(title = "id", description = "id")
    private Long id;

    @Schema(title = "创建人", description = "创建人")
    private String createUser;

    @Schema(title = "创建人ID", description = "创建人ID")
    private Long createUserId;

    @Schema(title = "更新人", description = "更新人")
    private String updateUser;

    @Schema(title = "更新人ID", description = "更新人ID")
    private Long updateUserId;

    @JsonFormat(pattern = TimeUtil.DEFAULT_DATE_TIME_PATTERN, timezone = TimeUtil.GMT_8)
    @Schema(title = "创建时间", description = "创建时间")
    private LocalDateTime createTime;

    @JsonFormat(pattern = TimeUtil.DEFAULT_DATE_TIME_PATTERN, timezone = TimeUtil.GMT_8)
    @Schema(title = "更新时间", description = "更新时间")
    private LocalDateTime updateTime;
}
